package demo05;

import java.io.File;
import java.io.FileNotFoundException;

/*
 *  文件检索：
 *  案例要求：搜索相对路径file目录中的所有.java文件
 *  案例分析：
 *      1. 目录搜索，无法判断多少级目录，所以使用递归，遍历所有目录
 *      2. 遍历目录时，获取的子文件，通过文件名称，判断是否符合条件
 */
public class Demo01Recursion {
    public static void main(String[] args) {
        findJavaFile(new File("file"));
    }

    private static void findJavaFile(File file) {
        if (file.exists()) {
            for (File fileName : file.listFiles()) {
                if (fileName.isDirectory()) { // 文件名为文件夹，直接递归调用
                    findJavaFile(fileName);
                }
                // 文件名字符串->小写->结尾带有.java，则符合条件，输出打印
                if (fileName.getName().toLowerCase().endsWith(".java")) {
                    System.out.println(fileName.getAbsolutePath()); // 打印绝对路径
                }
            }
        } else {
            try {
                throw new FileNotFoundException("非真实文件！");
            } catch (FileNotFoundException e) {
                e.printStackTrace();
            }
        }
    }
}
